Many application programs utilize one or more cursors to indicate insertion or selection points. One type of cursor is a mouse cursor. Mouse cursors are used in windows environments to indicate the location of the mouse with respect to one or more windows. The user moves a mouse over a surface to cause the mouse cursor to move. The mouse cursor may be used in a variety of ways. For example, if the user positions the mouse cursor over an object and then clicks it, the object may be selected.
The conventional Windows operating system uses bitmapped mouse cursors, and allows an application program to provide the bitmap that will be used as the mouse cursor, and change it at any time. The program can thus change the mouse cursor to allow it to be used as an indicator. For example, while a program is performing calculations, the program can change the mouse cursor to an hourglass by supplying an identifier of a file containing an hourglass bitmap to indicate to the user that the program is busy.
The use of bitmaps for mouse cursors have several drawbacks. One drawback of the use of a bitmap for a mouse cursor is that bitmaps don't scale well. Although one can scale a bitmap up or down, scaling a bitmap up causes the image to appear pixelated, and scaling a bitmap down can cause image detail to be lost. If the user wishes to use a mouse cursor that changes in size, the user must supply several bitmaps at different sizes, which can cause the mouse cursor to appear to jump from one size to another rather than smoothly change size, or the user can scale the bitmaps, resulting in the pixelated larger image and a smaller image that is rendered with missing detail. Although capabilities such as interpolation/antialiasing could be used to scale the bitmap, the operating system may not perform such a function.
Another drawback to the use of bitmaps is that bitmaps are static images. A programmer of an application cannot supply an animated sequence to the operating system for display as a mouse cursor. Although the programmer of the application could direct the operating system to replace the mouse cursor with one bitmap, and then replace it with another and another in order to simulate an animation, this can dramatically add to the complexity of the application program. Furthermore, because operating system may not have been designed with this capability in mind, it may not be able to process the successive replacements quickly enough and without interruption of the image to produce a truly pleasing animated effect.
The lack of a scalable, antialiased mouse cursor and the lack of an animated mouse cursor can be particularly noticeable if the application program for which the mouse cursor is being used contains these capabilities. For example, web applications that are displayed using the conventional Flash Player commercially available from Macromedia, Inc. of San Francisco, Calif., allows a user to view animated sequences that have the potential to be antialiased as they scale up or down. The mouse cursor may be used to operate the application, yet its display as a static bitmap restricts the application from incorporating the mouse cursor as an integral part of the application. Thus, the mouse cursor appears too distantly related to the application.
What is needed is a system and method for providing a scalable, antialiased or animated mouse cursor, for use by applications such as those displaying scalable, antialiased or animated images.